@echo off
color 0A
chcp 65001 >nul
echo ========================================
echo 修复版本打包过程
echo 当前目录: %CD%
echo Python版本: 
python --version
echo ========================================

echo.
echo 检查必需文件...
python check_files.py
color 0A
if errorlevel 1 (
    echo 文件检查失败，终止打包过程
    pause
    exit /b 1
)

echo.
echo 修复PyInstaller兼容性问题...
python fix_pyinstaller.py
color 0A
if errorlevel 1 (
    echo PyInstaller修复失败，尝试继续...
)

echo.
echo 清理旧的构建文件...
if exist "build" rd /s /q "build"
if exist "dist" rd /s /q "dist"
color 0A

echo.
echo 正在安装依赖...
python -m pip install --upgrade pip
color 0A
pip install -r requirements.txt
color 0A

echo.
echo 检查PyInstaller版本...
python -c "import PyInstaller; print('PyInstaller版本:', PyInstaller.__version__)"
color 0A

echo.
echo 使用备用方法进行打包...
echo 方法1: 使用--exclude-module参数...
python -m PyInstaller ^
    --onefile ^
    --windowed ^
    --exclude-module distutils ^
    --exclude-module distutils.util ^
    --exclude-module setuptools.distutils ^
    --exclude-module tkinter ^
    --exclude-module test ^
    --add-data "frame_schema.xml;." ^
    --hidden-import "PyQt5" ^
    --hidden-import "PyQt5.sip" ^
    --hidden-import "numpy" ^
    --hidden-import "pandas" ^
    --hidden-import "matplotlib" ^
    --hidden-import "matplotlib.backends.backend_qt5agg" ^
    --hidden-import "xml.etree.ElementTree" ^
    --hidden-import "logging" ^
    --hidden-import "openpyxl" ^
    --hidden-import "psutil" ^
    --runtime-hook "runtime_hook.py" ^
    --name "成帧数据应用软件" ^
    main.py

color 0A

echo.
if exist "dist\成帧数据应用软件.exe" (
    echo ========================================
    echo 打包成功！
    echo 可执行文件位置: %CD%\dist\成帧数据应用软件.exe
    echo 文件大小:
    dir "dist\成帧数据应用软件.exe" | findstr "成帧数据应用软件.exe"
    echo ========================================
) else (
    echo ========================================
    echo 方法1失败，尝试方法2: 简化打包...
    echo ========================================
    
    echo 使用最小化配置重新打包...
    python -m PyInstaller ^
        --onefile ^
        --console ^
        --exclude-module distutils ^
        --hidden-import "PyQt5" ^
        --hidden-import "numpy" ^
        --hidden-import "pandas" ^
        --hidden-import "psutil" ^
        --name "成帧数据应用软件_简化版" ^
        main.py
    
    if exist "dist\成帧数据应用软件_简化版.exe" (
        echo ========================================
        echo 简化版打包成功！
        echo 可执行文件位置: %CD%\dist\成帧数据应用软件_简化版.exe
        echo ========================================
    ) else (
        echo ========================================
        echo 所有打包方法都失败了。
        echo 请查看build目录中的日志文件获取详细错误信息。
        echo 常见解决方案:
        echo 1. 降级到Python 3.11
        echo 2. 使用其他打包工具如cx_Freeze
        echo 3. 使用虚拟环境重新安装依赖
        echo ========================================
    )
)

echo.
echo 显示构建日志（如果存在）...
if exist "build" (
    for /r build %%f in (*.txt) do (
        echo 发现日志文件: %%f
        echo 最后20行内容:
        powershell "Get-Content '%%f' | Select-Object -Last 20"
        echo ----------------------------------------
    )
)

echo.
echo 按任意键继续...
pause
color 0A 